// 2. 引入环境地址
const {
  baseURL
} = require('./env').prod

// 3. 专属域名
const vip = 'jxy'

// 1. 二次封装
module.exports = {

  // 封装wx.request
  // 括号中要传参，因为请求的是活的，所以对应的要传参    isSubDomain判断是否有专属域名
  // method='GET', data={}  函数的默认值
  // 1.1   (抛出的是这个方法，用在api.js中)
  request: function (url, method = 'GET', data = {}, isSubDomain = true) {

    // 4. 判断是否有vip专属域名       url = 基地址 + 专属域名vip + 业务接口url
    if (isSubDomain) {
      url = `${baseURL}/${vip}/${url}` //  url = ` https://api.it120.cc/${vip}/${url}`    这俩效果一样，但是以防以后基地址改变，所以最好写一个活的
    } else {
      url = `${baseURL}/${url}`
    }

    // 1.2
    // promise包一层    成功的     失败的
    return new Promise((resolve, reject) => {

      // 6.加载是出现loading
      wx.showLoading({
        title: '加载中',
      })

      // 这部分要写活
      // wx.request({     
      //   url: 'xxx',
      //   method:xxx,
      //   data:'xxx',
      // })

      // 1.3
      wx.request({
        url, // 4. url:'url',前后一样，可以省略成一个
        method,
        data,
        header: {
          'content-type': 'application/x-www-form-urlencoded'
        },
        success(res) {
          // 7.加载完成  隐藏loading
          wx.hideLoading()

          // 5. 抛出
          resolve(res.data) // 成功走这个
        },
        fail(error) {
          reject(error) // 失败走这个
        }
      })

    })
  }

}

// 不支持 Promise 风格的调用，所以得用promise包一层，让他支持
// application/x-www-form-urlencoded  请求方式，来进行数据的格式化，要使用header请求头，来设置格式化

// 4. 是否有专属域名，没有就不用拼接，设置一个状态判断 isSubDomain=true，有域名